Various methods of encryption to provide secure electronic communications are well known in the art. In symmetric methods of encryption, the sender and the recipient use the same code or key to encrypt and decrypt the message. The only completely secure cipher which cannot possibly be broken or deciphered is the One-Time Pad (OTP). A OTP takes a stream of bits that contains the plaintext message, and a secret random bit-stream of the same length as the plaintext (the key). To encrypt the plaintext with the key, each pair of bits from the key and plaintext is sequentially acted on by the exclusive-or function to obtain the ciphertext bit. The ciphertext cannot be deciphered if the key is truly random and the key is kept secret from an unauthorized party. The problem with this method is that the key should be at least the same length as the message. If a shorter key is used and repeated then the cipher can be broken. In some cases the data which needs to be encrypted is extremely large.
There is therefore a need for a method of generating a random key, or OTP, which is of variable length and that allows for encryption of very large amounts of data.